package com.gaogzhen.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gaogzhen.domain.TradeArea;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gaogzhen.dto.TradeAreaDto;
import com.gaogzhen.vo.TradeAreaMarketsVo;

import java.util.List;

/**
* @author Administrator
* @date 2022-12-08 10:18
*/
public interface TradeAreaService extends IService<TradeArea>{


    /**
     * 分页查询交易区域列表
     * @param page      分页
     * @param name      交易区域名称
     * @param status    状态
     * @return          交易区域列表
     */
    Page<TradeArea> findByPage(Page<TradeArea> page, String name, Byte status);

    /**
     * 修改交易区域状态
     * @param id       交易区域id
     * @param status    状态
     */
    void updateStatus(Long id, Byte status);

    /**
     * 查找所有指定状态的交易区域
     * @param status    状态
     * @return          交易区域集合
     */
    List<TradeArea> findAll(Byte status);

    /**
     * 查询所有交易区域及交易区域下的交易市场
     * @return 交易区域及交易区域下的交易市场集合
     */
    List<TradeAreaMarketsVo> getTradeAreaMarkets();

    /**
     * 查询用户收藏交易区域及交易区域下的交易市场
     * @param userId    用户id
     * @return          用户收藏交易区域及交易区域下的交易市场
     */
    List<TradeAreaMarketsVo> getUserFavoriteMarkets(Long userId);

    /**
     * 查询所有的交易区域和交易区域下的市场
     * @return
     */
    List<TradeAreaDto> findAllTradeAreaAndMarket();
}
